//
//  WBVisitorView.swift
//  ZWWEIBO
//
//  Created by xzw on 2018/4/4.
//  Copyright © 2018年 xzw. All rights reserved.
//

import UIKit

//访客视图
class WBVisitorView: UIView {

    
    //注册按钮
    lazy var registerButton : UIButton = UIButton.cz_textButton("注册", fontSize: 16, normalColor: UIColor.orange, highlightedColor: UIColor.black, backgroundImageName: "common_button_white_disable")
    
    //登陆按钮
    lazy var loginButton : UIButton = UIButton.cz_textButton("登陆", fontSize: 16, normalColor: UIColor.darkGray, highlightedColor: UIColor.black, backgroundImageName: "common_button_white_disable")
    
    //访客信息 imageName/message
    //首页默认imageName = ""
    var vistorInfo : [String : String]? {
        didSet{
            guard  let imageName = vistorInfo?["imageName"],
                let message = vistorInfo?["message"] else {
                    return
            }
            
            //提示
            tipLabel.text = message
            
            //首页
            if imageName == "" {
                startAnimation() //圆圈开始动画
                return
            }
            
            //其他控制器
            iconView.image = UIImage(named: imageName)
            houseIconView.isHidden = true
            maskIconView.isHidden = true
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //图像视图
    private lazy var iconView : UIImageView = UIImageView(image: UIImage(named: "visitordiscover_feed_image_smallicon"))
    
    //遮盖视图
    private lazy var maskIconView : UIImageView = UIImageView(image: UIImage(named: "visitordiscover_feed_mask_smallicon"))
    
    //小房子
     private lazy var houseIconView : UIImageView = UIImageView(image: UIImage(named: "visitordiscover_feed_image_house"))
    
    //提示标签
    private lazy var tipLabel : UILabel = UILabel.cz_label(withText: "关注一些人，回这里看看有什么惊喜关注一些人，回这里看看有什么惊喜", fontSize: 14, color: UIColor.darkGray)
    
}

//设置界面
extension WBVisitorView {
    
    //动画
    fileprivate func startAnimation(){
        let animation = CABasicAnimation(keyPath: "transform.rotation")
        animation.toValue = 2 * Double.pi
        animation.repeatCount = MAXFLOAT
        animation.duration = 10
        animation.isRemovedOnCompletion = false
        iconView.layer.add(animation, forKey: nil)
    }
    
    
    //设置视图
  fileprivate  func setupUI(){
    backgroundColor = UIColor.cz_color(withRed: 237, green: 237, blue: 237)
    
    //1.添加控件
    addSubview(iconView)
    addSubview(maskIconView)
    addSubview(houseIconView)
    addSubview(tipLabel)
    addSubview(registerButton)
    addSubview(loginButton)
    
    //文字居中
    tipLabel.textAlignment = .center
    
    //2.取消autoresizing
    for v in subviews {
        v.translatesAutoresizingMaskIntoConstraints = false
    }
    
    //3.代码自动布局
    let margin : CGFloat = 20
    
    //3.1图像视图
    addConstraint(NSLayoutConstraint(item: iconView,
                                     attribute: .centerX,
                                     relatedBy: .equal,
                                     toItem: self,
                                     attribute: .centerX,
                                     multiplier: 1.0,
                                     constant: 0))
    
    addConstraint(NSLayoutConstraint(item: iconView,
                                     attribute: .centerY,
                                     relatedBy: .equal,
                                     toItem: self,
                                     attribute: .centerY,
                                     multiplier: 1.0,
                                     constant: -60))
    
    //3.2小房子
    addConstraint(NSLayoutConstraint(item: houseIconView,
                                     attribute: .centerX,
                                     relatedBy: .equal,
                                     toItem: iconView,
                                     attribute: .centerX,
                                     multiplier: 1.0,
                                     constant: 0))
    
    addConstraint(NSLayoutConstraint(item: houseIconView,
                                     attribute: .centerY,
                                     relatedBy: .equal,
                                     toItem: iconView,
                                     attribute: .centerY,
                                     multiplier: 1.0,
                                     constant: 0))
    
    //3.3提示标签
    addConstraint(NSLayoutConstraint(item: tipLabel,
                                     attribute: .centerX,
                                     relatedBy: .equal,
                                     toItem: iconView,
                                     attribute: .centerX,
                                     multiplier: 1.0,
                                     constant: 0))
    
    addConstraint(NSLayoutConstraint(item: tipLabel,
                                     attribute: .top,
                                     relatedBy: .equal,
                                     toItem: iconView,
                                     attribute: .bottom,
                                     multiplier: 1.0,
                                     constant: margin))
    
    addConstraint(NSLayoutConstraint(item: tipLabel,
                                     attribute: .width,
                                     relatedBy: .equal,
                                     toItem: nil,
                                     attribute: .notAnAttribute,
                                     multiplier: 1.0,
                                     constant: 240))
    
    //3.4注册按钮
    addConstraint(NSLayoutConstraint(item: registerButton,
                                     attribute: .left,
                                     relatedBy: .equal,
                                     toItem: tipLabel,
                                     attribute: .left,
                                     multiplier: 1.0,
                                     constant: 0))
     addConstraint(NSLayoutConstraint(item: registerButton,
                                      attribute: .top,
                                      relatedBy: .equal,
                                      toItem: tipLabel,
                                      attribute: .bottom,
                                      multiplier: 1.0,
                                      constant: margin))
    
    addConstraint(NSLayoutConstraint(item: registerButton,
                                     attribute: .width,
                                     relatedBy: .equal,
                                     toItem: nil,
                                     attribute: .notAnAttribute,
                                     multiplier: 1.0,
                                     constant: 100))
    
    //3.5登陆按钮
    addConstraint(NSLayoutConstraint(item: loginButton,
                                     attribute: .right,
                                     relatedBy: .equal,
                                     toItem: tipLabel,
                                     attribute: .right,
                                     multiplier: 1.0,
                                     constant: 0))
    
    addConstraint(NSLayoutConstraint(item: loginButton,
                                     attribute: .top,
                                     relatedBy: .equal,
                                     toItem: tipLabel,
                                     attribute: .bottom,
                                     multiplier: 1.0,
                                     constant: margin))
    
    addConstraint(NSLayoutConstraint(item: loginButton,
                                     attribute: .width,
                                     relatedBy: .equal,
                                     toItem: registerButton,
                                     attribute: .width,
                                     multiplier: 1.0,
                                     constant: 0))
    
    //3.6遮盖视图
    let viewDic : [String : Any] = ["maskIconView" : maskIconView,
                   "registerButton" : registerButton]
    let metrics = ["spacing" : -20]
    addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[maskIconView]-0-|",
                                                  options: [],
                                                  metrics: nil,
                                                  views: viewDic))
    addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[maskIconView]-(spacing)-[registerButton]",
                                                  options: [],
                                                  metrics: metrics,
                                                  views: viewDic))
    
    }
}
